/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import entitas.Buku;
import entitas.DaftarBuku;
import entitas.User;
import java.util.ArrayList;
import java.util.List;
import jpa.exceptions.NonexistentEntityException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Tommy
 */
public class LogicBuku {

    HttpServletRequest request;

    public LogicBuku(HttpServletRequest request) {
        this.request = request;
    }

    /* method untuk melakukan fungsi input buku, yaitu mengambil nilai textfield pada form buku
     * untuk kemudian dimasukkan sebagai nilai untuk membuat baris baru pada tabel buku
     */
    public String inputBuku() {
        Buku buku = new Buku();
        DaftarBuku db = new DaftarBuku();
        HttpSession session = request.getSession();
        User user = new User();

        String namaBuku = request.getParameter("namabuku");
        String pengarang = request.getParameter("pengarang");

        if (namaBuku.equals("") || pengarang.equals("")) {
            return "error.jsp";
        } else {
            boolean hasilCheck = db.check(namaBuku);
            if (!hasilCheck) {                
                user = (User) session.getAttribute("username");
                buku.setNamaBuku(namaBuku);
                buku.setPengarang(pengarang);
                buku.setUser(user);

                db.createBuku(buku);
                return "index.jsp";
            } else {
                return "error2.jsp";
            }
        }
    }

    public String lihatBuku() {
        List<Buku> buku = new ArrayList<Buku>();
        DaftarBuku db = new DaftarBuku();

        buku = db.getBooks();
        request.setAttribute("books", buku);
        return "daftarBuku.jsp";

    }
    
    public String lihatBukuUser() {
        List<Buku> buku = new ArrayList<Buku>();
        DaftarBuku db = new DaftarBuku();

        buku = db.getBooks();
        request.setAttribute("books", buku);
        return "daftarBukuUser.jsp";

    }

    public String ubahBuku() {
        HttpSession session = request.getSession();
        Buku buku = new Buku();
        List<Buku> bukus = new ArrayList<Buku>();
        DaftarBuku db = new DaftarBuku();

        if (session.getAttribute("username") != null) {
            Buku ename = (Buku) session.getAttribute("ename");
            boolean hasilCheck = db.check(ename.getNamaBuku());
            if (hasilCheck) {
                buku = ename;
                session.setAttribute("tempEditBuku", buku);
                return "editBuku.jsp";
            } else {
                session.setAttribute("error", "nama event tidak ada");
                bukus = db.getBooks();
                request.setAttribute("bukus", bukus);
                return "daftarBuku.jsp";
            }
        } else {
            session.setAttribute("error", "sudah logout sebelumnya");
            bukus = db.getBooks();
            request.setAttribute("bukus", bukus);
            return "daftarBuku.jsp";
        }
    }

     public String SimpanUbahBuku() {
        HttpSession session = request.getSession();
        Buku buku = new Buku();
        List<Buku> bukus = new ArrayList<Buku>();
        DaftarBuku db = new DaftarBuku();

        if(session.getAttribute("username") !=null){
        String namaBuku = request.getParameter("namaBuku");
        String pengarang = request.getParameter("pengarang");

        buku =(Buku) session.getAttribute("ename");
        String tempEname = buku.getNamaBuku();
        buku.setNamaBuku(namaBuku);
        buku.setPengarang(pengarang);
        session.setAttribute("temEditBuku", bukus);

        if(namaBuku.equals("")||pengarang.equals("")){
            session.setAttribute("error", "masih ada field kosong");
            return "editBuku.jsp";
        }else{
            boolean hasilCheck = db.check(namaBuku);
            if(!hasilCheck || namaBuku.equals(tempEname)){
                session.setAttribute("ename", buku);
                db.editBuku(buku);
                session.removeAttribute("tempEditBuku");
                return "daftarBuku.jsp";
            }else{
                session.setAttribute("error", "username sudah terpakai");
                return "editBuku.jsp";
            }

          }
        }else{
            session.setAttribute("error", "sudah logout sebelumnya");
            bukus = db.getBooks();
            request.setAttribute("bukus", bukus);
            return "index.jsp";
        }

    }


    
}